The present invention relates generally to the field of video distribution. In particular, the present invention provides a balanced video distribution system, as well as corresponding methods and apparatus, which utilize feedback from the channel multiplexers as well as rate estimation and predictive rate control.
In cable systems, multiple compressed video programs are combined to form multiplexes. Each multiplex is transmitted over a fixed-bandwidth channel to a network of receivers. Typically, a receiver decodes and displays one or more video programs by first tuning to a radio frequency corresponding to a selected multiplex, and then extracting the packets corresponding to the one or more selected program.
It is desirable to maximize the number of digitally compressed programs which can be transmitted over the available fixed-bandwidth channels. One way to increase the number of video programs is to improve the efficiency of the video compression process. Utilizing the most advanced video compression algorithms is desirable, but it is difficult to upgrade an installed base of video receivers. One way to improve the efficiency of a video compression system while maintaining compatibility with an installed base of network receivers, is to utilize variable bit-rate (VBR) encoding. With VBR, the compression ratio is increased when a particular scene is easily compressed, and similarly the compression ratio is reduced when a particular scene is complex and more difficult to compress. By allowing the instantaneous bit rate to vary in this way, VBR encoders are able to deliver more uniform video quality while encoding at a lower average bit rate.
Although VBR encoders are more efficient than constant bit-rate (CBR) encoders, it is more difficult to combine compressed VBR programs into multiplexes. If the multiplex is to be transmitted over a fixed-bandwidth channel, then the instantaneous data rate of the multiplex cannot exceed the data-rate capacity of the channel. In fact, if the goal is to maximize image quality at all times, then the aggregate multiplex data rate should remain constant at a rate matching the capacity of the channel. Statistical multiplexers are designed to achieve this result by broadcasting a “quality” setting to each VBR encoder. Assuming equal priorities among video encoders, the same quality setting would be conveyed to each, and the quality setting would be adjusted from time to time in order to maintain the desired aggregate data rate.
In many cases, video multiplexers are not co-located with the video encoders, or the programs to be multiplexed are pre-encoded, and therefore the encoding process cannot be regulated in order to achieve a desired aggregate data rate. If the compressed programs were generated using VBR encoders, then it can be difficult to insure that the aggregate data rate of each multiplex remains within the capacity of each corresponding communication channel. This problem is often addressed by utilizing sophisticated multiplexers with transrating capabilities. By coupling a transrater to some or all programs comprising a particular multiplex, it becomes possible to selectively reduce the date rate of the video programs. Such systems are often referred to as statistical remultipexers. In simple terms, a statistical remultiplexer reduces the bit rate of elementary video streams to be able to pack more elementary streams in a given transport stream. The MPEG standards allow requantization of existing video streams to achieve bit rate reduction. The level of quantization does not need to be fixed or constant. It is also unlikely that all the different streams peak, in terms of bitrate, at the same time. Statistics based algorithms could be deployed to calculate a level of quantization for each stream such that the transport stream bandwidth is utilized to its fullest while maintaining highest possible quality. There could be many different ways to calculate such a level of quantization. An efficient statistical remultiplexer is able to maximize the quality of each program in the multiplex, while insuring that the aggregate data rate remains within the capacity of the channel at all times.
Another way to increase the number of programs that can be transmitted over a limited number of channels, or to increase the video quality of the transmitted programs, is to optimize the process of assigning programs to the available transmission channels. Typically, a Session Resource Manager (SRM) selects the transmission channel, either by assuming a constant bit rate per program, or by basing the decision on the number of streams already allocated to each channel. Both methods are sub-optimal. In the first case, each program is assumed to be of a constant rate and the SRM simply sums the rate of each program comprising a particular multiplex to determine if sufficient excess bandwidth is available to accommodate the new program. This method is not easily applied to programs encoded using the more efficient VBR method, and attempts to do so usually result in under-utilized channels or lost data due to channel overflows. Assigning programs to transmission channels based on the number of programs per channel is also inefficient when applied to VBR programs. For example, each program may have a different average rate depending on image resolution or the type of content. For example, sports content is usually encoded at a higher frame rate and at a higher data rate in order to match the video quality of movies encoded at a much lower rate. Also, the SRM cannot account for instantaneous rate variations among each program and therefore cannot determine if sufficient bandwidth is available to accommodate worst case conditions.
It would be advantageous to provide a more effective way to efficiently allocate programs among available transmission channels while maximizing image quality.
The methods and apparatus of the present invention provide the foregoing and other advantages.